// 入口文件
console.log('运行成功了')

// 引入Vue
import Vue from 'vue'

// 引入app.vue根组件
import app from './App.vue'

// 引入Header导航栏模板组件
// import {Header,Swipe,SwipeItem,Button} from 'mint-ui'
// Vue.component(Header.name , Header);
// Vue.component(Swipe.name, Swipe);
// Vue.component(SwipeItem.name, SwipeItem);
// Vue.component(Button.name,Button)
// 引入min-ui的轮播图组件

// 引入懒加载lazy-load需要全局引入
import MintUI from 'mint-ui'
Vue.use(MintUI)
import 'mint-ui/lib/style.css'

// 引入mui的样式文件
import './lib/mui/css/mui.min.css'
// 引入字体文件样式
import './lib/mui/css/icons-extra.css'
import Moment from 'moment'
// 使用请求vue-resourse发送请求
import VueResource from 'vue-resource'
// 手动挂载全局Vue上
Vue.use(VueResource)
// 全局设置vue-resource的http
Vue.http.options.root = 'http://www.liulongbin.top:3005/'
// 设置全局vue-resource表单数据格式
Vue.http.options.emulateJSON = true

//安装图片预览插件
import VuePreview from 'vue-preview'
 
// defalut install
Vue.use(VuePreview)

// 设置时间的过滤器
Vue.filter("dataFormat",function(msg){
   return Moment(msg).format("YYYY-MM-DD HH:mm:ss")
})
// 引入路由
import VueRouter from "vue-router"
// 手动挂载VueRouter
Vue.use(VueRouter)


// 引入本地存储的vuex-along的插件
import VuexAlong from 'vuex-along'
// 引入vuex
import Vuex from 'vuex'
Vue.use(Vuex)
 var store = new Vuex.Store({
    state: {
      // 设置购物车的数组
      car: []
    },
    mutations: {
      
        addCars(state,currentShopInfo){
             //  假设在购物车中没有找到对应的商品
               var flag = false

            state.car.some(item => {
               if(item.id == currentShopInfo.id){
                  item.count += parseInt(currentShopInfo.count);
                  flag = true;
                  // 说明找到了已经添加过了
                  return true;
               }
            })
            // 说明当前没有找到匹配对应之前没有加入购物车只需要push到里面即可
            if(!flag){
               state.car.push(currentShopInfo);
            }
        },
        updateGoodsInfo(state,goodsInfo){
         //   修改购物车中的数量值
         state.car.some(item=>{
            if(item.id == goodsInfo.id){
               item.count = parseInt(goodsInfo.count);
               return true;
            }
         })
        },
        delCar(state,id){
         state.car.some((item,i)=>{
            if(item.id == id){
               state.car.splice(i,1);
               return true;
            }
         })
        },
         // 同步选中按钮状态
      updateGoodsSelected(state,info){
         // 循环数组找到info对象对应id和选中状态找到对应id修改状态实现同步
        state.car.forEach(item => {
           if(item.id === info.id){
              item.selected = info.selected;
           }
        })
      //   把最新的数据存储到localStorage中
      }
    },
    getters: {
       getAllCount(state){
            // 声明一个存量数量的容器
            var a = 0;
            state.car.forEach(item => {
               a += item.count;
            })
            return a;
       },
      //  遍历car中的数组以{id：count}
       getGoodsCount(state){
          var o = {}
          state.car.forEach(item => {
             o[item.id] = item.count
          })
          return o
       },
      //  获取选中的商品
      getGoodsSelected(state){
        var o = {}
        state.car.forEach(item => {
           o[item.id] = item.selected
        })
        return o;
      },
      // 获取商品勾选中的信息实现数量相加减
      getGoodsCountAndAmount(state){
         // 设置一个被选中的商品信息
         var o = {
            count: 0,
            amount: 0,
         }
         state.car.forEach(item => {
            // 判断选中的商品信息
            if(item.selected){
               o.count += item.count;
               o.amount += item.price * item.count;
            }
         })
        return o;
      }

    },
    plugins: [VuexAlong]
 })

// 引入router.js
import router from './router.js'
import { from } from '_array-flatten@2.1.2@array-flatten';
import { O_TRUNC } from 'constants';

var vm = new Vue({
    el: '#app',
    render: c=>c(app),
    router,
    store
});